package bdsimple.impl.mysql;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import bdsimple.abstractfactory.AbstractFactoryDAO;
import bdsimple.dao.base.FamiliaDAO;
import bdsimple.dao.base.VampiroDAO;
import bdsimple.dto.base.FamiliaDTO;
import bdsimple.dto.base.VampiroDTO;
import dao.base.impl.BaseDTO;

public class FamiliaDTOImpl extends BaseDTO implements FamiliaDTO {

	public FamiliaDTOImpl() {
		super(FamiliaDAO.class);
	}

	// ---------------------------------------------------------------------------
	
	private String nombreFamilia;
	
	private String descripcion;
	
	// private Image imagen;
	
	private int valorInicialFuerza;
	
	private int valorInicialDefensa;
	
	private int valorInicialSigilosidad;
	
	private int valorInicialVelocidad;
	
	private int valorInicialArma;
	
	private int valorInicialNegocio;
	
	private List<VampiroDTO> vampiroDTOList;

	// ---------------------------------------------------------------------------
	
	public String getNombreFamilia() {
		return nombreFamilia;
	}

	public void setNombreFamilia(String nombreFamilia) {
		this.nombreFamilia = nombreFamilia;
	}
	
	// ---------------------------------------------------------------------------

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	// ---------------------------------------------------------------------------

	public int getValorInicialFuerza() {
		return valorInicialFuerza;
	}

	public void setValorInicialFuerza(int valorInicialFuerza) {
		this.valorInicialFuerza = valorInicialFuerza;
	}
	
	// ---------------------------------------------------------------------------

	public int getValorInicialDefensa() {
		return valorInicialDefensa;
	}

	public void setValorInicialDefensa(int valorInicialDefensa) {
		this.valorInicialDefensa = valorInicialDefensa;
	}
	
	// ---------------------------------------------------------------------------

	public int getValorInicialSigilosidad() {
		return valorInicialSigilosidad;
	}

	public void setValorInicialSigilosidad(int valorInicialSigilosidad) {
		this.valorInicialSigilosidad = valorInicialSigilosidad;
	}
	
	// ---------------------------------------------------------------------------

	public int getValorInicialVelocidad() {
		return valorInicialVelocidad;
	}

	public void setValorInicialVelocidad(int valorInicialVelocidad) {
		this.valorInicialVelocidad = valorInicialVelocidad;
	}
	
	// ---------------------------------------------------------------------------

	public int getValorInicialArma() {
		return valorInicialArma;
	}

	public void setValorInicialArma(int valorInicialArma) {
		this.valorInicialArma = valorInicialArma;
	}
	
	// ---------------------------------------------------------------------------

	public int getValorInicialNegocio() {
		return valorInicialNegocio;
	}

	public void setValorInicialNegocio(int valorInicialNegocio) {
		this.valorInicialNegocio = valorInicialNegocio;
	}
	
	// ---------------------------------------------------------------------------

	@SuppressWarnings("unchecked")
	public List<VampiroDTO> getVampiroDTOList() {
		if (vampiroDTOList == null) {
			try {

				// Lazy load the list
				VampiroDAO vampiroDAO = (VampiroDAO) AbstractFactoryDAO
						.getFactoryDAO(). //
						getDAO(VampiroDAO.class, connectionBean);

				vampiroDTOList = new ArrayList<VampiroDTO>();
				vampiroDTOList.addAll((Collection<? extends VampiroDTO>) // 
						vampiroDAO
								.listBy(VampiroDTOImpl.FAMILIA_REFERENCIA, id));

			} catch (Exception e) {
				throw new RuntimeException(e);
			}
		}

		return vampiroDTOList;
	}

	public void setVampiroDTOList(List<VampiroDTO> vampiroDTOList) {
		throw new UnsupportedOperationException();
	} 
	
	// ---------------------------------------------------------------------------
	
	
}

